


#pragma once
#include "IGameState.h"


class LoadGame :
	public IGameState
{
public:
	enum Slot {SLOT_1, SLOT_2, SLOT_3};

	static LoadGame* GetInstance(); 


	/**********************************************************/
	// IGameState Interface:
	virtual void	Enter(void)					override;	// load resources
	virtual void	Exit(void)					override;	// unload resources

	virtual bool	Input(void)					override;	// handle user input
	virtual void	Update(float dt)			override;	// update entites
	virtual void	Render(void)				override;	// render entities / menu

	//Mutators 
	int GetSavesCursor(void)	const	{ return m_nSavesCursor; }
	int GetSavesCursorMax(void)	const	{ return m_nSavesCursorMax; }
	int GetWhatLevel(void)		const	{ return m_nWhatLevel; }

	int GetP1Lives(void)		const	{ return m_nP1Lives; }
	int GetP2Lives(void)		const	{ return m_nP2Lives; }

	int GetP1Score(void)		const	{ return m_nP1Score; }
	int GetP2Score(void)		const	{ return m_nP2Score; }


private:
	LoadGame() = default;
	~LoadGame() = default;
	LoadGame(const LoadGame&) = delete; 
	LoadGame& operator = (const LoadGame&) = delete;

	int m_nSavesCursor = 0;
	int m_nSavesCursorMax = 2;

	int m_nWhatLevel = -1;

	int m_nP1Lives = -1;
	int m_nP2Lives = -1;

	int m_nP1Score = -1;
	int m_nP2Score = -1;

	bool m_bYourMom = true; 

};

